/**
 * 邮件相关API
 */
import request from '@/utils/request';

/**
 * 发送重置密码邮件
 * @param {Object} data - 邮件数据
 */
export function sendPasswordResetEmail(data) {
  return request.post('/api/email/password-reset', data);
}

/**
 * 发送验证码邮件
 * @param {Object} data - 邮件数据
 * @param {string} data.email - 邮箱地址
 * @param {string} data.type - 验证码类型(register/reset/login)
 */
export function sendVerificationCode(data) {
  return request.post('/api/email/send', data);
}

/**
 * 验证邮箱验证码
 * @param {Object} data - 验证数据
 * @param {string} data.email - 邮箱地址
 * @param {string} data.code - 验证码
 * @param {string} data.type - 验证码类型
 */
export function verifyEmailCode(data) {
  return request.post('/api/email/verify', data);
}

/**
 * 发送测试邮件
 * @param {Object} config - 邮件配置数据
 */
export function sendTestEmail(config) {
  return request.post('/api/email/test', config);
}

/**
 * 获取邮件服务配置
 */
export function getEmailConfig() {
  return request.get('/api/email/config');
}

/**
 * 更新邮件服务配置
 * @param {Object} config - 邮件服务配置
 */
export function updateEmailConfig(config) {
  return request.put('/api/email/config', config);
}

/**
 * 测试邮件服务配置
 * @param {Object} config - 邮件服务配置
 */
export function testEmailConfig(config) {
  return request.post('/api/email/config/test', config);
}

/**
 * 获取邮件模板列表
 */
export function getEmailTemplates() {
  return request.get('/api/email/templates');
}

/**
 * 更新邮件模板
 * @param {string} id - 模板ID
 * @param {Object} template - 模板信息
 */
export function updateEmailTemplate(id, template) {
  return request.put(`/api/email/templates/${id}`, template);
}

export default {
  sendPasswordResetEmail,
  sendVerificationCode,
  verifyEmailCode,
  sendTestEmail,
  getEmailConfig,
  updateEmailConfig,
  testEmailConfig,
  getEmailTemplates,
  updateEmailTemplate
}; 